package cn.shop.merchant.model.user;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author : 李一涵
 * @date : Created in 2021-11-11 13:04
 * @description : 权限表
 */
@Data
public class MerchantPermission {

	/**
	 * 编号
	 */
	private Long id;

	/**
	 * 父级id 用于展示作用 最顶级默认为0
	 */
	@JsonProperty("pId")
	private Long parentId;

	/**
	 * 权限展示名称
	 */
	private String label;

	/**
	 * 后台权限控制使用的名称
	 */
	private String code;

	/**
	 * 图标
	 */
	@JsonProperty("img")
	private String icon;

	/**
	 * 访问时的url
	 */
	private String url;

	/**
	 * 是否显示 用于页面是否在菜单中显示
	 */
	@JsonProperty("show")
	private Boolean display;

	/**
	 * 排序
	 */
	@JsonProperty("order")
	private Integer sort;

	/**
	 * 是否为内置权限
	 */
	@JsonProperty("init")
	private Boolean initial;

	/**
	 * 是否启用 1 启用 0 禁用
	 */
	@JsonProperty("ena")
	private Boolean enable;
	
	/**
	 * 菜单展示是否为禁选状态
	 */
	private Boolean disabled;

	private Boolean deleted;

	/**
	 * 页面类型 ,菜单类型 还是接口类型 还是按钮类型 控制显隐和访问  page  menu  button  api
	 */
	private String type;

	private LocalDateTime createTime;

	private Long createId;

	private LocalDateTime updateTime;

	private Long updateId;


	@JsonProperty("pChild")
	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	private List<MerchantPermission> pChild;

}
